package com.education.welco.service;


import com.education.welco.pojo.SCatalogWork;
import com.education.welco.pojo.TClass;
import com.education.welco.pojo.vo.SCatalogWorkApp;
import com.education.welco.pojo.vo.StudentWorkVo;
import com.education.welco.pojo.vo.WholeWorkInfoApp;

import java.math.BigDecimal;
import java.util.List;

/**
 * 课程作业 服务层
 *
 * @author d
 * @date 2020-05-08
 */
public interface ISCatalogWorkService {

    /**
     * 查询课程作业信息
     *
     * @param id 课程作业ID
     * @return 课程作业信息
     */
    public SCatalogWork selectSCatalogWorkById(Integer id);

    /**
     * 查询课程作业信息
     *
     * @param list 课程作业ID
     * @return 课程作业信息
     */
    public List<SCatalogWork> selectSCatalogWorkByIds(List<Integer> list);

    /**
     * 查询课程作业列表
     *
     * @param sCatalogWork 课程作业信息
     * @return 课程作业集合
     */
    public List<SCatalogWork> selectSCatalogWorkList(SCatalogWork sCatalogWork);

    /**
     * 查询课程作业信息
     *
     * @param catalogId 课程作业ID
     * @return 课程作业信息
     */
    public List<SCatalogWork> selectSCatalogWorkByCatalogId(Integer catalogId);

    /**
     * 新增课程作业
     *
     * @param sCatalogWork 课程作业信息
     * @return 结果
     */
    public int insertSCatalogWork(SCatalogWork sCatalogWork);

    /**
     * 修改课程作业
     *
     * @param sCatalogWork 课程作业信息
     * @return 结果
     */
    public int updateSCatalogWork(SCatalogWork sCatalogWork);

    /**
     * 删除课程作业信息
     *
     * @param id 需要删除的数据ID
     * @return 结果
     */
    public int deleteSCatalogWorkById(Integer id);

    /**
     * 删除课程作业信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteSCatalogWorkByIds(String ids);

    List<SCatalogWork> selectCatalogWorkStuList(SCatalogWork sCatalogWork);

    List<SCatalogWork> selectSCatalogWorkAllList(SCatalogWork catalogWork);

    List<SCatalogWork> selectSCatalogWorkStuList(SCatalogWork sCatalogWork);

    List<Integer> selectSCatalogWorkStuListAll(SCatalogWork sCatalogWork);

    List<Integer> selectSCatalogWorkStuListSome(String courseId,Integer stuId);

    List<SCatalogWork> selectSCatalogWorkStuListOther(List<Integer> other);

    List<SCatalogWork> workListByTeacher(Integer teaId, String workName, Integer workState, Integer classId, Integer pageNum, Integer pageSize);

    List<TClass> selectClassByworkId(Integer workId);

    List<TClass> classIdAndNameForWork(Integer teaId);

    List<StudentWorkVo> classWorkList(Integer teaWorkId, Integer workState, Integer pageNum, Integer pageSize);

    StudentWorkVo workByworkIdandUserId(Integer id);

    int workMarkById(Integer id, BigDecimal score, String remark, Integer state);

    List<TClass> selectClassByTopCatalogId(Integer topCatalogId);

    List<TClass> selectClassByTeaId(Integer teaId);

    List<Integer> workListByWorkIdandClassId(String teaWorkId);

    int selectWaitStudentWorkNumByTeaId(String teaId);

    List<SCatalogWorkApp> selectWorkListForTea(Integer teaId);

    List<WholeWorkInfoApp> wholeWorkInfo(Integer workId,String likeName);
}